1. Field of the Invention
The present invention relates to a user interface for software development and, more particularly, to code editors.
2. Description of the Related Art
The processing power of modem electronic devices continues to increase while such devices are becoming ever smaller. For instance, handheld devices that easily fit into one's pocket, such as cell phones and personal digital assistants (PDAs), now handle a wide variety of computing and communication tasks. The small size of these devices exacerbates the already cumbersome task of entering data, which is typically performed using a stylus or numeric keypad. In response, new devices are now being developed to implement multimodal access, which makes user interactions with electronic devices much more convenient.
Multimodal access is the ability to combine multiple input/output modes in the same user session. Typical multimodal access input methods include the use of speech recognition, a keypad/keyboard, a touch screen, and/or a stylus. For example, in a Web browser on a PDA, one can select items by tapping a touchscreen or by providing spoken input. Similarly, one can use voice or a stylus to enter information into a field. With multimodal technology, information presented on the device can be both displayed and spoken.
While multimodal access adds value to small mobile devices, mobility and wireless connectivity are also moving computing itself into new physical environments. In the past, checking one's e-mail or accessing the Internet meant sitting down at a desktop or laptop computer and dialing into an Internet service provider using a modem. Now, such tasks can be performed wirelessly from a myriad of locations which previously lacked Internet accessibility. For example, one now can access the Internet from a bleacher in a football stadium, while walking through a mall, or while driving down the interstate. Bringing electronic devices into such environments requires new ways to access them and the ability to switch between different modes of access.
To facilitate implementation of multimodal access, multimodal markup languages which incorporate both visual markup and voice markup have been developed for creating multimodal applications which offer both visual and voice interfaces. One multimodal markup language set forth in part by International Business Machines (IBM) is called XHTML+Voice, or simply X+V. X+V is an XML based markup language that extends extensible hypertext markup language (XHTML), a visual markup, with a subset of voice extensible markup language (VoiceXML), a voice markup, and XML Events. There is also some additional X+V specific markup for synchronization of data between XHTML and the Voice XML subset. XML Events is a markup for activation of voice markup in response to document object model (DOM) Level 2 events. XML Events allows authors to attach DOM level 2 event handlers to XML nodes. XML Events markup is typically hand-coded in a text editor or an XML document view of an integrated development environment (IDE).
Another multimodal markup language is the Speech Application Language Tags (SALT) language as set forth by the SALT forum. Existing visual markup languages, such as HTML, XHTML, and (scalable vector graphics) SVG can be extended with SALT to implement multimodal interaction. SALT comprises a small set of XML elements that have associated attributes and DOM properties, events and methods. As for X+V markup, the XML elements are typically hand-coded in a text editor or an XML document view of an IDE.
Current text editors and IDEs lack the necessary functionality for a novice multimodal developer to proficiently create multimodal applications. Users generally need to become familiar with multimodal syntax by consulting the relevant multimodal language specification, or by searching through help documentation, reference books, Web sites, etc. While there is benefit in learning to use the syntax of the multimodal language that one intends to use to create multimodal applications, the learning process can be very time consuming. Thus, it would be beneficial to provide multimodal markup programmers with an interface that simplifies coding of multimodal markup.